def bubble_sort(data: list):
    for j in range(len(data)):
        for i in range(1, len(data) - j):
            if arr[i] < arr[i - 1]:
                arr[i], arr[i - 1] = arr[i - 1], arr[i]


def select_sort(data):
    # 选择排序的原理是最后的元素都跟第一个比较选择出第一小的数据，放在一排序的末尾，时间复杂度也是n2
    for j in range(len(data)):
        min_index = j
        for i in range(j + 1, len(data)):
            if arr[i] < arr[min_index]:
                min_index = i
        arr[j], arr[min_index] = arr[min_index], arr[j]


def insert_sort(data):
    # 未排序的数组中数据拿出来去和已排序的数组比较，让他回到合适的位置
    for i in range(1, len(data)):
        start_index = i
        while start_index > 0 and arr[start_index] < arr[start_index - 1]:
            arr[start_index], arr[start_index - 1] = arr[start_index - 1], arr[start_index]
            start_index -= 1


if __name__ == '__main__':
    # 冒泡排序可以写出来了，第一个问题是实现原理个就是时间复杂度
    arr = [11, 23, 45, 18, 6, 79, 9]
    select_sort(arr)
    print(arr)
